﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;
using crm.model;
using System.Data;


namespace crm.aplicacao.CRMSystem
{
    public partial class GOrigemLeads : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
                carregarOrigemLeads();

        }

        [DirectMethod]
        public void inserir()
        {
            OrigemLeads obj = new OrigemLeads();
            obj.Nome = txtNomeOrigemLeads.Text;

            OrigemLeadsDao objDao = new OrigemLeadsDao ();

            var objValida = objDao.consultar(txtNomeOrigemLeads.Text);
            
            if (hdfIdOrigemLeads.Value.Equals(""))
            if (objValida.Rows.Count > 0)
                X.Msg.Alert("Status", "Este item já está cadastrado!").Show();
            else
                if (objDao.inserir(obj))
                    X.Msg.Alert("Status", "Inserido com sucesso!").Show();
                else
                    X.Msg.Alert("Status", "Não foi possível inserir!").Show();

            else
            {
                var id = Convert.ToInt32(hdfIdOrigemLeads.Value);

                hdfIdOrigemLeads.Clear();
                obj = new OrigemLeads() { IdOrigemLeads = id };

                obj.Nome = txtNomeOrigemLeads.Text;

                if (new OrigemLeadsDao().atualizar(obj))
                    X.Msg.Alert("Status", "Atualizado com sucesso!").Show();
                else
                    X.Msg.Alert("Status", "Não foi possível atualizar!").Show();
            }

            WindowNovoOrigemLeads.Hide();
            carregarOrigemLeads();
        }

        [DirectMethod]
        public void editar()
        {
            RowSelectionModel sm = GridOrigemLeads.SelectionModel.Primary as RowSelectionModel;

            if (sm.SelectedRow == null)
            {
                X.Msg.Alert("Status", "Selecione um item").Show();
                return;
            }

            var id = Convert.ToInt32(sm.SelectedRow.RecordID);

            var dt = new OrigemLeadsDao().consultar(id);

            List<OrigemLeads> lst = new List<OrigemLeads>();

            foreach (DataRow dr in dt.Rows)
            {
                lst.Add(new OrigemLeads()
                {
                    IdOrigemLeads = (int)dr["idorigemleads"],
                    Nome = (string)dr["nome"],
                });
            }

            if (lst.Count == 0)
                return;

            var obj = lst[0];

            hdfIdOrigemLeads.Value = id.ToString();
            txtNomeOrigemLeads.Text = obj.Nome;

            WindowNovoOrigemLeads.Show();
        }

        [DirectMethod]
        public void remover()
        {
            RowSelectionModel sm = GridOrigemLeads.SelectionModel.Primary as RowSelectionModel;

            if (sm.SelectedRow == null)
            {
                X.Msg.Alert("Status", "Selecione um item").Show();
                return;
            }

            var id = Convert.ToInt32(sm.SelectedRow.RecordID);

            new OrigemLeadsDao().remover(id);

            if (id > 0)
                X.Msg.Alert("Status", "Removido com sucesso!").Show();
            else
                X.Msg.Alert("Status", "Não foi possível remover!").Show();

            carregarOrigemLeads();

        }

        void carregarOrigemLeads()
        {
            OrigemLeadsDao objDao = new OrigemLeadsDao();
            var dados = objDao.consultar();
            this.strOrigemLeads.DataSource = dados;
            this.strOrigemLeads.DataBind();
        }

        [DirectMethod]
        public void limparCampo()
        {
            this.txtNomeOrigemLeads.Text = "";
        }
    }
}